草庐IT

C++ Boost.ASIO async_read_until 慢

全部标签

c++ - 使用 boost.process 同时读取和写入 child 的 stdio

我正在尝试使用类似这样的boost.process写入和读取child的stdio:boost::asio::io_servicewriteService,readService;bp::async_pipein{writeService};bp::async_pipeout{readService};bp::childprocess(CompressCmd.c_str(),bp::std_inout);Buffersrc;src.reserve(4*1024*1024);integer_typeread=0;//std::atomic_int64_ttotalWrite{0};int

c++ boost计算函数花费的时间

再次问好一个boost问题:我需要计算在我的boost线程中我的函数花费的时间:这里是代码:boost::posix_time::microsecondstes(12);inti=0;while(true){boost::posix_time::ptimestart=boost::posix_time::microsec_clock::local_time();myFunction();boost::this_thread::sleep(tes);boost::posix_time::ptimeend=boost::posix_time::microsec_clock::local_t

c++ - 终止 boost 线程 (C++)

我有一个问题,我需要终止boost线程。并从主线程执行此操作。使用标志是不合适的。请帮我。我需要Windows解决方案。 最佳答案 请阅读thefollowingquestion的答案.尽管如此,如果您必须在Windows上终止线程,您可以这样做:TerminateThread(yourThread.native_handle()); 关于c++-终止boost线程(C++),我们在StackOverflow上找到一个类似的问题: https://stacko

Windows:Boost 和 CMake

我已经尝试了很长时间来找出问题,但我不能..所以我在这里,我很抱歉。一些信息:我的系统是Windows7,64位专业版,带有VisualStudio10和MinGW我使用以下方法编译了Boost(1.53.0):bootstrap.batmingw.\b2--prefix=C:\boosttoolset=gcc-j4link=shared.\b2--prefix=C:\boosttoolset=gcc-j4link=sharedinstall我的安装看起来像:C:\boostinclude\boost-1_53\boost--headerslib\--libraries,bothdll

Java ImageIO.read() 返回 null

我想在我的项目中读取图像(.png文件),我希望它也能在可运行的.jar文件中工作。所以我写了这段代码:try{InputStreamin;in=Loader.class.getClassLoader().getResourceAsStream("buttons.png");System.out.println(in.read()+",Reader:"+in);BufferedImageimg=ImageIO.read(in);System.out.println(img.getHeight());in.close();}catch(IOExceptione){e.printStack

c++ - 当同名文件夹已存在时,如何使用 boost 创建新文件夹?

我正在使用boost::filesystem创建一个空文件夹(在Windows中)。假设我要创建的文件夹的名称是新建文件夹。当我运行以下程序时,会按预期创建一个具有所需名称的新文件夹。当第二次运行程序时,我想创建新文件夹(2)。虽然这是一个不合理的期望,但这就是我想要实现的目标。有人可以指导我吗?#includeintmain(){boost::filesystem::pathdstFolder="NewFolder";boost::filesystem::create_directory(dstFolder);return0;}预期输出: 最佳答案

c++ - boost::filesystem::space() 报告错误的磁盘空间

我在驱动器C:上有430GB的空闲空间。但是对于这个程序:#include#includeintmain(){boost::filesystem::pathp("C:");std::size_tfreeSpace=boost::filesystem::space(p).free;std::cout输出是:2542768128Bytes2424MB2542768128Bytes2424MB2830102528Bytes2698MB我需要知道有多少磁盘空间可用,因为我的应用程序必须下载一个巨大的文件,我需要知道下载它是否可行。我在Windows上使用mingw:g++(i686-posix

c++ - 比 boost::file_mapping 更快的读取文件的方法?

我正在编写一个对延迟敏感的应用程序,它在初始化时读取文本文件。我分析并重写了我所有的算法,这样我85%的执行时间来自以下几行:boost::interprocess::file_mappingfile(Path,read_only);boost::interprocess::mapped_regiondata(file,read_only);我在Windows上写这篇文章-有没有更快的方法将文件映射到内存中?便携性不是问题。 最佳答案 您可以只使用Win32的native函数,但我认为您不会节省很多,因为boost不会增加很多开销:

c++ - 如何在不使用boost的情况下创建目录?

我想在与我的程序相同的路径中创建一个目录,最终将数据保存到。为此,我需要由预处理器分支包围的特定于操作系统的调用,但在此之前我从未编写过任何特定于操作系统的代码。我不确定我需要包含哪些header,或者要使用它们的哪些功能。如果操作系统是Windows、Mac和Linux(无论哪种方法都适用于大多数Linux发行版),我应该使用哪些函数和header?我不想为此使用boost文件系统的原因是,我整天都很难编译它;它的文档和构建系统,呃,对于我简单的灵魂来说似乎太学术/冗长了!最终,我相信维护3或4个单独的文件加载分支对我来说会更快。 最佳答案

Windows 强制执行 READ-ONLY .text 部分,即使被 ld 链接器禁用

在下面的玩具程序中,我在.text部分声明了一个变量并写入它,这给出了一个段错误,因为.text部分被标记为只读:Breakpoint1,0x00401000instart()(gdb)disassembleDumpofassemblercodeforfunctionstart:=>0x00401000:movl$0x2,0x40100aEndofassemblerdump.(gdb)stepiProgramreceivedsignalSIGSEGV,Segmentationfault.0x00401000instart()(gdb)这是objdump输出:test.exe:filef